package Day_0225.SpringMVC;

/**
 * @author zxc
 * @date 2023/02/25 20:13
 **/
public class SpringMVC_Workflow {
    public static void main(String[] args) {
        /**
         * 描述Spring MVC的工作流程
         * ===》
         * （1）用户发送请求至前端控制器DispatcherServlet;
         *
         * （2） DispatcherServlet收到请求后，调用HandlerMapping处理器映射器，请求获取Handler;
         * ===>
         * 即，根据用户请求的URL地址，去HandlerMapping中寻找指定的Handler;
         *
         * （3）处理器映射器,根据请求url找到具体的处理器，
         *  生成处理器对象及处理器拦截器(如果有则生成),返回给DispatcherServlet;
         *
         * （4）DispatcherServlet 调用 HandlerAdapter处理器适配器;
         * ===>
         * 即，处理器适配器（HandlerAdapter）经过适配后，去执行指定的Handler对象;Handler
         *
         * （5）HandlerAdapter 经过适配，调用具体处理器(Handler，也叫后端控制器);
         *
         * （6）Handler执行完成后,返回ModelAndView;
         * （7）HandlerAdapter，将Handler执行结果ModelAndView，返回给DispatcherServlet;
         * ===>
         * 即，最终处理器适配器会返回 ModelAndView给DispatcherServlet;
         *
         * （8）DispatcherServlet，将ModelAndView传给ViewResolver视图解析器进行解析;
         * （9）ViewResolver解析后返回具体View；
         * ===>
         * 即，视图解析器（ViewResolver）会将ModelView 解析成具体的View;
         *
         * （10）DispatcherServlet对View进行渲染视图（即，将模型数据填充至视图中）
         *
         * （11）DispatcherServlet，响应用户。
         * ===》
         * 即,DispatcherServlet会将渲染好的View 响应给客户;
         *
         */
    }
}
